  DituGadget.prototype.animate = function() {
    this.showMessage("locationfound");
    this.setMarker();
    this.gmap.enableContinuousZoom();
    this.zoomOut();
    this.gmap.disableContinuousZoom();
  }

  DituGadget.prototype.setMarker = function() {
    // instead this.marker of var marker
    if(this.marker) {
      GEvent.removeListener(this.markerDragStartEventHandler);
      GEvent.removeListener(this.markerClikEventHandler);
      this.gmap.removeOverlay(this.marker);
    }
    this.marker = new GMarker(this.point, {draggable: true});
    this.gmap.addOverlay(this.marker);
    this.markerClikEventHandler = GEvent.bind(this.marker, "click", this, this.openMarkerInfoWindow);
    this.markerDragStartEventHandler = GEvent.bind(this.marker, "dragstart", this, this.closeMarkerInfoWindow);
  }

  DituGadget.prototype.zoomOut = function() {
    if(!this.gmap.getBounds().containsLatLng(this.point)){
      this.gmap.zoomOut(null,true); 
      setTimeout(methodCallback(this, DituGadget.prototype.zoomOut), 1000);
    }else{
      this.panTo();
    }
  }

  DituGadget.prototype.zoomIn = function() {
    var current_zoom = this.gmap.getZoom(); 
    if(current_zoom < this.zoom){
      this.gmap.zoomIn(this.point,false,true); 
      setTimeout(methodCallback(this, DituGadget.prototype.zoomIn), 1000);
    } else {
      this.showMessage("animationfinish");
      this.openMarkerInfoWindow();
    }
